package com.sg.model.app.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import lombok.experimental.Accessors;

import jakarta.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * 主表，表类型（空间独有），只有一个小版本实例类型（1-目标，2-目标分类，3-指标，4-部门ID，5-周期ID，6-权限）
 *
 * @author xxx
 */
@Data
@Accessors(chain = true)
@TableName("oms_assist_node_status")  //3-11-01内容节点状态表
public class OmsAssistNodeStatus implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    
    
    /**
     * 内容节点状态ID 
     */
    @TableId(value = "assist_node_status_id", type = IdType.ASSIGN_UUID)
		@NotNull(message = "assistNodeStatusId不能为空")
    private String	 assistNodeStatusId;
    /**
     * 上级内容节点状态ID 
     */
    @TableField(value = "parent_assist_node_status_id")
		@Schema(description = "上级内容节点状态ID")
    private String	 parentAssistNodeStatusId;
    /**
   * 节点内容对象类型编码 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表 OMS_EVA_BATCH_RELATED_SET:评价模板批次相关设置表 OMS_TARGET_CYCLE_PLAN_SET:目标周期规划设置表 OMS_TARGET_OBJECTIVE_PLAN_EXTEND:指标扩展规划设置表
     */
    @TableField(value = "assist_node_type_code")
		@NotNull(message = "节点内容对象类型编码不能为空")
		@Schema(description = "节点内容对象类型编码")
    private String	 assistNodeTypeCode;
    /**
     * 节点内容对象实例ID 
     */
    @TableField(value = "assist_node_type_object_id")
		@NotNull(message = "节点内容对象实例ID不能为空")
		@Schema(description = "节点内容对象实例ID")
    private String	 assistNodeTypeObjectId;
    /**
     * 节点内容对象实例标识 
     */
    @TableField(value = "assist_node_type_object_code")
		@Schema(description = "节点内容对象实例标识")
    private String	 assistNodeTypeObjectCode;
    /**
   * 归属对象类型编码 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表 OMS_EVA_BATCH_RELATED_SET:评价模板批次相关设置表 OMS_TARGET_CYCLE_PLAN_SET:目标周期规划设置表 OMS_TARGET_OBJECTIVE_PLAN_EXTEND:指标扩展规划设置表
     */
    @TableField(value = "object_type_code")
		@Schema(description = "归属对象类型编码")
    private String	 objectTypeCode;

    /**
     * 归属对象内容ID 
     */
    @TableField(value = "object_id")
		@Schema(description = "归属对象内容ID")
    private String	 objectId;
    /**
     * 是否有检查项 TRUE:是 FALSE:否
     */
    @TableField(value = "is_check_item")
		@NotNull(message = "是否有检查项不能为空")
		@Schema(description = "是否有检查项")
    private String	 isCheckItem;

    /**
     * 是否有下级检查仪表盘  TRUE:是 FALSE:否
     */
    @TableField(value = "is_check_item_panel")
		@NotNull(message = "是否有下级检查仪表盘 不能为空")
		@Schema(description = "是否有下级检查仪表盘 ")
    private String	 isCheckItemPanel;

    /**
     * 是否系统自动完成 TRUE:是 FALSE:否
     */
    @TableField(value = "is_system_auto_complete")
		@NotNull(message = "是否系统自动完成不能为空")
		@Schema(description = "是否系统自动完成")
    private String	 isSystemAutoComplete;

  /**
   * 统计本级节点数量
   */
  @TableField(value = "cur_node_num")
  @Schema(description = "统计本级节点数量")
  private Long curNodeNum;

  /**
   * 统计本级节点已完成数量
   */
  @TableField(value = "cur_node_done_num")
  @Schema(description = "统计本级节点已完成数量")
  private Long curNodeDoneNum;

  /**
   * 统计下级节点数量
   */
  @TableField(value = "next_node_num")
  @Schema(description = "统计下级节点数量")
  private Long nextNodeNum;

  /**
   * 统计下级节点已完成数量
   */
  @TableField(value = "next_node_done_num")
  @Schema(description = "统计下级节点已完成数量")
  private Long nextNodeDoneNum;

    /**
     * 展示状态 OT_ARRANGE:未安排 IN_ARRANGEMENT:安排中 HAVE_ARRANGE:已安排 NOT_AT_THE:未开始 ONGOING:进行中 STAGES_COMPLETE:阶段完成 COMPLETE:全部完成
     */
    @TableField(value = "display_status")
		@Schema(description = "展示状态")
    private String	 displayStatus;

    /**
     * 是否已完成 TRUE:是 FALSE:否
     */
    @TableField(value = "is_complete")
		@NotNull(message = "是否已完成不能为空")
		@Schema(description = "是否已完成")
    private String	 isComplete;

    /**
     * 是否本级完成 TRUE:是 FALSE:否
     */
    @TableField(value = "current_level_complete")
		@NotNull(message = "是否本级完成不能为空")
		@Schema(description = "是否本级完成")
    private String	 currentLevelComplete;

    /**
     * 是否下级完成 TRUE:是 FALSE:否
     */
    @TableField(value = "next_level_complete")
		@NotNull(message = "是否下级完成不能为空")
		@Schema(description = "是否下级完成")
    private String	 nextLevelComplete;

  /**
   * 使用场景编码 USED_TARGET_CONTNET_SET:用于目标内容设置 USED_EVA_TEMP_MGT_SET:用于评价模板管理设置 USED_DEPT_TARGET_TASK_WEIGHT_SET:用于部门目标任务书权重设置
   */
  @TableField(value = "employ_scene_type_code")
  @Schema(description = "使用场景编码")
  private String employSceneTypeCode;

  /**
   * 主题内容类型编码 OMS_TARGET_CYCLE:目标周期表 OMS_EVALUATION_OBJECT_TARGET_CYCLE:被评对象目标周期表 OMS_TARGET:目标表 OMS_TARGET_CATEGORY:目标分类表 OMS_TARGET_OBJECTIVE:指标表 OMS_TASK:任务表 OMS_ORG_INDUCTION_RECORD:就职记录表 OMS_FRAMEWORK_ORIGINAL_ROLE_MEMBER:身份人员表 OMS_ORG_DEPT:部门表 OMS_BASE_HOST:宿主表 OMS_FRAMEWORK_SPACE:空间表 OMS_TSPE_CYCLE_STAGE_DATA:周期阶段资料记录 OMS_EVALUATION_TEMPLATE:评价模板 OMS_EVALUATION_PORTRAIT:评价画像表 OMS_ORG_POSITION:职务表 OMS_VIRTUAL_ORG_MEMBER:虚拟组织成员表 OMS_PLANNING:规划资料表 OMS_FRAMEWORK_USERS:个人账号表 OMS_EXECUTE_CYCLE_STAGE:执行周期阶段表 OMS_CONF_SCHEME:配置方案表 OMS_EVA_OBJ_TARGET_CYCLE_OSET:被评对象目标周期目标设置表 OMS_EVA_OBJ_TARGET_CYCLE_WEIGHT_SET:被评对象目标周期权重设置表 OMS_NOTICE:通知公告表 OMS_CYCLE:周期表 OMS_EVALUATION_SUBJECT:评价主题表 OMS_BIZ_APP_BATCH:业务应用批次表 OMS_EVA_BATCH_RELATED_SET:评价模板批次相关设置表 OMS_TARGET_CYCLE_PLAN_SET:目标周期规划设置表 OMS_TARGET_OBJECTIVE_PLAN_EXTEND:指标扩展规划设置表
   */
  @TableField(value = "theme_content_type_code")
  @Schema(description = "主题内容类型编码")
  private String themeContentTypeCode;

  /**
   * 主题内容ID
   */
  @TableField(value = "theme_content_id")
  @Schema(description = "主题内容ID")
  private String themeContentId;

  /**
   * 操作人就职记录ID
   */
  @TableField(value = "operation_induction_id")
  @NotNull(message = "操作人就职记录ID不能为空")
  @Schema(description = "操作人就职记录ID")
  private String operationInductionId;

  /**
   * 操作时间
   */
  @TableField(value = "operate_time")
  @NotNull(message = "操作时间不能为空")
  @Schema(description = "操作时间")
  private Date operateTime;

    /**
     * 创建人就职记录ID 
     */
    @TableField(value = "create_induction_id")
		@NotNull(message = "创建人就职记录ID不能为空")
		@Schema(description = "创建人就职记录ID")
    private String	 createInductionId;

    /**
     * 创建时间 
     */
    @TableField(value = "create_time")
		@NotNull(message = "创建时间不能为空")
		@Schema(description = "创建时间")
    private Date	 createTime;

  /**
   * 是否作废 TRUE:是 FALSE:否
   */
  @TableField(value = "is_valid")
  @NotNull(message = "是否作废不能为空")
  @Schema(description = "是否作废")
  private String isValid;

  /**
   * 创建于空间ID
   */
  @TableField(value = "space_id")
  @NotNull(message = "创建于空间ID不能为空")
  @Schema(description = "创建于空间ID")
  private String spaceId;

  /**
   * 创建于联盟应用ID
   */
  @TableField(value = "app_id")
  @NotNull(message = "创建于联盟应用ID不能为空")
  @Schema(description = "创建于联盟应用ID")
  private String appId;
}
